package com.example.demo.AppUtil;

import com.example.demo.AppUtil.context.AuthUserContext;
import com.example.demo.AppUtil.modle.ANoneUser;
import com.example.demo.config.ben.BO.UserInfoInTokenBO;
import lombok.experimental.UtilityClass;

/*
 * @Author:大力王
 * @Date:2024/6/10-10-21:21
 * 开始了
 */
@UtilityClass
public class SecurityUtils {
    /**
     * 用户请求的路径前缀。
     * 该常量定义了用户相关请求的URL路径的起始部分，用于识别和区分不同的请求类型。
     * 使用"/U/"作为用户请求的路径前缀，便于后续的路由匹配和请求处理。
     */
    private static final String USER_REQUEST = "/car/";


    /**
     * 获取用户
     */
    public ANoneUser getUser() {
        if (!HttpContextUtils.getHttpServletRequest().getRequestURI().startsWith(USER_REQUEST)){
            // 用户相关的请求，应该以/u开头！！！
            throw new RuntimeException("ANone.user.request.error:请检查购物车相关请求是不是以/U开头的");
        }
        UserInfoInTokenBO userInfoInTokenBO = AuthUserContext.get();

        ANoneUser noneUser = new ANoneUser();
        if (userInfoInTokenBO != null){
            noneUser.setUserId(userInfoInTokenBO.getUserId());
            noneUser.setBizUserId(userInfoInTokenBO.getBizUserId());
            noneUser.setEnabled(userInfoInTokenBO.getEnabled());
            noneUser.setStationId(userInfoInTokenBO.getOtherId());
            noneUser.setShopId(userInfoInTokenBO.getShopId());
            return noneUser;
        }
        return new ANoneUser();
    }
}
